package cn.topevery.garden.dal.logic;

import cn.topevery.garden.dal.dao.QuestionnaireDao;
import cn.topevery.garden.entity.po.Questionnaire;
import cn.topevery.garden.entity.query.QuestionnaireQuery;
import cn.topevery.garden.entity.vo.QuestionnaireVO;
import cn.topevery.garden.framework.base.BaseLogic;
import hw.topevery.framework.db.base.BaseEntityDao;
import hw.topevery.framework.db.entity.DataPager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 问卷调查主表
 *
 * @author code-generate
 * @date 2022-01-05
 */
@Service
public class QuestionnaireLogic extends BaseLogic<Questionnaire> {
    @Autowired
    QuestionnaireDao questionnaireDao;

    @Override
    public BaseEntityDao<Questionnaire, Integer> getDao() {
        return questionnaireDao;
    }

    

    /**
     * 获取列表
     *
     * @param query
     */
    public DataPager<QuestionnaireVO> listPage(QuestionnaireQuery query) {
        return questionnaireDao.listPage(query);
    }

    /**
     * 根据自增id批量删除
     *
     * @param ids
     */
    public void deleteBatchById(String userId,Integer[] ids) {
        questionnaireDao.delete(userId, ids);
    }

    /**
     * 根据自增id保存或者更新
     *
     * @param questionnaire 实体
     */
    public void saveOrUpdate(String userId, Questionnaire questionnaire){
        questionnaireDao.saveOrUpdate(userId,questionnaire);
    }

    /**
         * 根据自定义列值来获取对象
         */
    public Questionnaire getEntityByColumn(String key, String value) {
        return questionnaireDao.getEntityByColumn(key, value);
    }

    public void commitQuestionnaire(Questionnaire questionnaire, Integer id) {
        questionnaireDao.commitQuestionnaire(questionnaire, id);
    }

    public void deleteQuestionnaireById(Integer id, Integer userId) {
        questionnaireDao.deleteQuestionnaireById(id, userId);
    }

    public Questionnaire getQuestionnaireById(Integer id) {
        return questionnaireDao.getQuestionnaireById(id);
    }

    public void changeStatus(Integer id, Integer status, Integer userId) {
        questionnaireDao.changeStatus(id, status, userId);
    }

    public void wxQuestionnaireCommit(Questionnaire questionnaire) {
        questionnaireDao.wxQuestionnaireCommit(questionnaire);
    }
}
